home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / croutes.zip / DOSTIME.ASM < prev    next >
Assembly Source File  |  1984-05-16  |  2KB  |  55 lines

  1. ;                         *** dostime.asm ***
  2. ;
  3. ; IBM-PC microsoft "C" under PC-DOS
  4. ;
  5. ; Microsoft "C" callable 8088 assembly routine that uses a DOS function
  6. ; call to obtain and return the hours, minutes, seconds, and hundreths
  7. ; of a second as integers.
  8. ;
  9. ; synopsis    dostime(&hour,&min,&sec,&ths);
  10. ;
  11. ;        *** no function value returned ***
  12. ;        int hour;    0-23  military time
  13. ;        int min;    0-59
  14. ;        int sec;    0-59
  15. ;        int ths;    0-99
  16. ;
  17. ;
  18. ; Written by L. Cuthbertson, May 1984
  19. ;
  20. ;**********************************************************************
  21. ;
  22. PGROUP    GROUP    PROG
  23. PROG    SEGMENT    BYTE PUBLIC 'PROG'
  24.     PUBLIC    DOSTIME
  25.     ASSUME    CS:PGROUP
  26. ;
  27. ; ********************************************************************
  28. ;
  29. DOSTIME    PROC    NEAR
  30.     PUSH    BP
  31.     MOV    BP,SP
  32.     MOV    AH,2CH        ; DOS GET TIME FUNCTION NUMBER
  33.     INT    21H        ; DOS FUNCTION CALL INTERRUPT
  34.     MOV    AL,CH        ; MOVE HOURS INTO AX
  35.     XOR    AH,AH        ; CLEAR HIGH BYTE
  36.     MOV    DI,[BP+4]    ; ADDRESS OF HOURS VARIABLE
  37.     MOV    [DI],AX        ; MOVE HOURS INTO HOURS VARIABLE
  38.     MOV    BL,CL        ; MOVE MINUTES INTO BX
  39.     XOR    BH,BH        ; CLEAR HIGH BYTE
  40.     MOV    DI,[BP+6]    ; ADDRESS OF MINUTES VARIABLE
  41.     MOV    [DI],BX        ; MOVE MINUTES INTO MINUTES VARIABLE
  42.     MOV    CL,DH        ; MOVE SECONDS INTO CX
  43.     XOR    CH,CH        ; CLEAR HIGH BYTE
  44.     MOV    DI,[BP+8]    ; ADDRESS OF SECONDS VARIABLE
  45.     MOV    [DI],CX        ; MOVE SECONDS INTO SECONDS VARIABLE
  46.     XOR    DH,DH        ; CLEAR HIGH BYTE
  47.     MOV    DI,[BP+10]    ; ADDRESS OF THS VARIABLE
  48.     MOV    [DI],DX        ; MOVE 1/100THS INTO THS VARIABLE
  49.     POP    BP
  50.     RET
  51. DOSTIME    ENDP
  52. ;
  53. PROG    ENDS
  54.     END
  55.